import vnode from "./vnode";
import createElement from "./createElement";
import patchVnode from "./patchVnode";

export default function patch(oldVnode, newVnode) {
  const isDom = oldVnode.className !== undefined;
  if (isDom) {
    oldVnode = vnode( 
      undefined,
      oldVnode.tagName.toLowerCase(),
      undefined,
      undefined,
      undefined,
      oldVnode
    );
  }
  if (oldVnode.key === newVnode.key && oldVnode.sel === newVnode.sel) {
    /* 是同一个节点 */
    console.log("是同一个节点");
    patchVnode(oldVnode, newVnode);
  } else {
    /* 不是同一个节点 */
    console.log("不是同一个节点");
    // 创建上树节点
    const domNode = createElement(newVnode);
    // 上树本次更新的根元素
    oldVnode.elm.parentNode.insertBefore(domNode, oldVnode.elm);
    // 删除旧的 dom
    oldVnode.elm.parentNode.removeChild(oldVnode.elm);
  }
}
